분석녹음 화면 QA 반영#160
Merged
Merged
Conversation
- `PresentationScheduleScreen`의 발표 제목 입력 필드(`PrezelTextField`)에 10자 글자 수 제한(`maxLength`) 추가 - `AnalysisStepLayout` 진행 바 끝부분에 `RoundedCornerShape` 적용 - `PrezelButtonArea`의 배경색을 `PrezelTheme.colors.bgRegular`로 명시적 지정
- 스크롤 가능한 콘텐츠 존재 여부에 따라 하단 버튼 영역의 구분선 표시 기능 추가 - `PrezelTextField`에 IME 가시성을 결합하여 실제 타이핑 시에만 포커스 상태를 표시하도록 개선 - `VoiceRecordingContent` 및 `AnalysisStepLayout`에서 콘텐츠의 스크롤 가능 여부를 감지하는 로직 구현 - `VoiceRecordingButtonArea` 관련 컴포넌트에 `showDivider` 파라미터를 추가하여 배경 노출 제어 연동
- `PrezelAccordion`에 외부 상태 제어(`expanded`, `onExpandedChange`) 기능 추가 - 상황 설정 단계에서 옵션 선택 시 다음 아코디언이 자동으로 열리는 로직 구현 - 이미 선택된 옵션 클릭 시 선택 해제되는 토글 기능 추가 및 관련 `UiIntent` 수정 - `AnalysisBackStateReducer` 수정으로 상황 설정 화면에서 뒤로가기 시 입력 데이터 유지 - `PrezelDatePicker`의 확인 버튼 활성화 조건을 날짜 선택 여부(`null` 체크)로 변경
- 대본 입력 방식(업로드/직접 입력) 전환 시 기존 데이터 삭제 경고 다이얼로그 추가 - `PrezelTextArea` 및 업로드 카드가 화면 높이에 맞춰 확장되도록 레이아웃 개선 - `PrezelTabSize`의 `MEDIUM`을 `SMALL`로 명칭 변경 및 전반적인 탭 크기 조정 - `AnalysisStepLayout`에 콘텐츠 스크롤 여부 제어 옵션(`contentScrollable`) 추가 - 대본 및 음성 파일 지원 형식 표기 등 문자열 리소스 수정 및 다이얼로그 문구 추가
- 녹음 중 사용자 음성 크기를 실시간으로 감지하여 스낵바 피드백을 제공하는 기능 추가 - 최근 3초간 무음 상태가 지속될 경우 "준비되면 이어서 말해주세요" 메시지 노출 - 최근 3초간 평균 음량이 기준치보다 낮을 경우 "조금 더 크게 말해볼까요?" 메시지 노출 - `AnalysisFlowViewModel`에서 분석 제출 또는 재분석 시작 시 오디오 재생을 중단하도록 수정 - 실시간 피드백에 필요한 문자열 리소스 및 볼륨 임계값 상수 정의
- `AudioSessionState.ReadyToPlay` 상태에서 현재 시간과 전체 시간을 함께 표시하도록 수정 - 현재 시간 및 구분선(`/`)에 `textDisabled` 색상 스타일 적용 - `AudioSessionState` 관련 프로퍼티의 불필요한 들여쓰기 수정
- 지원되는 오디오 확장자(`m4a`, `mp4`, `mp3`) 검증 및 파일 이름 추출 로직 추가 - 분석 API 호출 시 15초 타임아웃(`withTimeout`) 적용 및 예외 발생 시 재시도 처리 - 내비게이션 이동 시 스택 초기화(`clearStack`) 옵션 추가 및 실패 시 복귀 로직 개선 - 오류 유형에 따른 재시도 단계(`audioRetryStep`) 및 실패 핸들링 로직 세분화 - 오디오 세션 에러 발생 시 분석 실패 화면(`ANALYSIS_FAILED`)으로 전환되도록 수정
- `VoiceRecordingChromeUi` 모델 추가 및 보이스 크롬 UI 상태 관리 연동 - 대본이 비어 있는 경우(`isBlank`) 보이스 크롬 영역을 확장하는 레이아웃 로직 적용 - 녹음 피드백 상태에 따라 보이스 크롬의 타이틀, 그래디언트, 웨이브폼 가시성을 동적으로 변경 - `PrezelVoiceChrome`이 상태별 고정 문자열 대신 전달받은 `titleText`를 출력하도록 수정 - `VoiceRecordingContent` 내 대본 영역의 공백 처리 및 최소 높이(`heightIn`) 설정 추가 - 녹음 준비 상태 등에 따른 스낵바 노출 및 UI 피드백 로직 개선
- `VoiceRecordingChromeTopBar`에서 사용되지 않는 `recordingState` 파라미터 제거 - `DefaultVoiceChromeHeight` 상수를 제거하고 `PrezelVoiceChrome` 레이아웃의 고정 높이 설정 삭제 - `VoiceChrome` 영역이 고정 높이 대신 내부 콘텐츠나 외부 제약에 따라 유연하게 구성되도록 수정
- `VoiceRecordingScreen`, `ScriptInputScreen`, `PresentationSituationScreen` 내 대형 UI 블록을 소형 컴포저블 함수로 추출하여 가독성 개선 - `AnalysisFlowViewModel` 내 레코딩 인텐트 처리 로직을 `handleRecordingIntent` 확장 함수로 분리 - `analyzePresentationRecording` 및 `reAnalyzePresentationRecording` 로직을 최상위 함수로 이동하여 구조화 - `VoiceRecordingTopBar` 및 `VoiceRecordingScriptText` 등 녹음 화면 내 UI 요소 컴포넌트화 - 상황 설정 화면의 각 아코디언 항목을 별도 함수로 분리하여 코드 복잡도 완화
moondev03
approved these changes
Jul 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📌 작업 내용
발표명 설정
발표상황 설정
대본 파일 업로드
음성 녹음 화면
녹음 확인 화면
음성 파일 업로드 화면
분석 로딩 화면
🧩 관련 이슈
closes #153
📸 스크린샷